﻿using NP.BPMReportPlatform.StandardApprovalFlow.Dto;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace NP.BPMReportPlatform.StandardApprovalFlow
{
    /// <summary>
    /// 通用审批接口
    /// </summary>
    public interface IStandardApprovalAppService : IApplicationService
    {
        /// <summary>
        /// 查询数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedResultDto<GetStandardApprovalOutput>> GetAllAsync(GetStandardApprovalInput input);

        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<GetStandardApprovalOutput>> ExportAsync(GetStandardApprovalInput input);

        /// <summary>
        /// 导出有运单的通用审批数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<ExportStandardApprovalOutput>> ExportTransportAsync(GetStandardApprovalInput input);


        /// <summary>
        /// 导出不足吨位发货
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<ExportStandardApprovalBZDWOutput>> ExportBZDWAsync(GetStandardApprovalInput input);


        /// <summary>
        /// 导出加急包车
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<ExportStandardApprovalJJBCOutput>> ExportJJBCAsync(GetStandardApprovalInput input);

        /// <summary>
        /// 导出90单发货
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<ExportStandardApproval90Output>> Export90Async(GetStandardApprovalInput input);

    }
}
